Some providers' clusters may require extra steps before or after installing Deckhouse.

Here are some common problems and ways to solve them. Should you run into difficulties installing Deckhouse in an existing cluster, please, share them by creating an [issue](https://github.com/deckhouse/deckhouse/issues).

{% offtopic title="Installation errors at the 'Waiting for Deckhouse to become Ready' step" %}
- Error of the following kind:
  ```
  │ │ ┌ Waiting for Deckhouse to become Ready
  │ │ │ Deckhouse pod found: deckhouse-64649df6f9-mf6dt (Pending)
  │ │ │ Deckhouse pod found: deckhouse-64649df6f9-mf6dt (Pending)
  ```

  Probably, there is no node in the cluster with the `node-role.kubernetes.io/control-plane: ""` label which is originally used in the `nodeSelector` of the `deckhouse` deployment manifest.

  Ways to fix the error:
  - Insert the proper `nodeSelector` into the `deckhouse` deployment:
    ```shell
    kubectl -n d8-system edit deployment/deckhouse
    ```
  - Delete nodeSelector in the `deckhouse` deployment:
    ```shell
    kubectl patch -n d8-system deployment deckhouse --type json -p '[{"op": "remove", "path": "/spec/template/spec/nodeSelector"}]'
    ```
{% endofftopic %}

{% offtopic title="There is no Ingress controller in the cluster..." %}
The `documentation` module (`deckhouse-web` in Deckhouse 1.45 or older), which provides a web interface to the cluster documentation, requires the Ingress controller to be active in the cluster. If there is no Ingress controller in your cluster, you can use the built-in [ingress-nginx](/documentation/v1/modules/402-ingress-nginx/) module:
<ul>
  <li><p>Enable the <code>ingress-nginx</code> module, by executing the following command:</p>
{% snippetcut selector="enable-ingress" %}
```shell
kubectl create -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: ingress-nginx
spec:
  enabled: true
EOF
```
{% endsnippetcut %}
</li>
<li><p>Create an <code>ingress-nginx-controller.yml</code> file with the following contents:</p>
{% snippetcut name="ingress-nginx-controller.yml" selector="ingress-nginx-controller-yml" %}
{% include_file "_includes/getting_started/{{ page.platform_code }}/partials/ingress-nginx-controller.yml.inc" syntax="yaml" %}
{% endsnippetcut %}</li>
<li><p>Once Deckhouse is installed, apply the file using the command below:</p>
{% snippetcut %}
```shell
kubectl create -f ingress-nginx-controller.yml
```
{% endsnippetcut %}
</li>
</ul>
{% endofftopic %}
